package com.micro.ai.template.dto.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Data
@Schema(description = "Agent响应")
public class AgentDTO {

    @Schema(description = "主键ID")
    private String id;

    @Schema(description = "Agent ID", example = "agent_123")
    private String agentId;

    @Schema(description = "Agent名称", example = "我的客服助手")
    private String agentName;

    @Schema(description = "模板ID")
    private String templateId;

    @Schema(description = "模板名称")
    private String templateName;

    @Schema(description = "模板版本", example = "1.0.0")
    private String templateVersion;

    @Schema(description = "描述")
    private String description;

    @Schema(description = "配置信息")
    private Map<String, Object> config;

    @Schema(description = "租户ID")
    private String tenantId;

    @Schema(description = "创建者用户ID")
    private String createdBy;

    @Schema(description = "创建者用户名")
    private String createdByUsername;

    @Schema(description = "状态", allowableValues = {"ACTIVE", "INACTIVE", "ERROR", "UPDATING"})
    private String status;

    @Schema(description = "健康状态", allowableValues = {"HEALTHY", "UNHEALTHY", "UNKNOWN"})
    private String healthStatus;

    @Schema(description = "最后健康检查时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastHealthCheck;

    @Schema(description = "标签列表")
    private List<String> tags;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}

